搜尋功能頁提供了許多方便的搜尋工具,協助我們簡單點選就可以找出預期的記錄相關結果。但 Graylog 可不僅止於此,如果需要更複雜的搜尋條件,也可以自行輸入搜尋語法進行更複雜的查詢。
在 Graylog 的搜尋當中,直接輸入要搜尋的字串是最直覺的作法,例如在搜尋列的查詢語法中輸入:
auth
搜尋結果即會出現記錄中包含有 auth
字串的結果,如下:
一般字串搜尋結果
這種搜尋是 不指定要搜尋欄位內容
的作法,系統會將輸入的字串用於記錄中 所有欄位
進行比對。
注意:
預設只有 message、full_message、source 可以搜尋部份符合結果,其它欄位的內容則必須與提供的字串完全符合才會被搜尋出來。至於為何預設只有這三個欄位支援此能力?在官方文件表示因效能考量所致。
若要搜尋的字串當中帶有空格,可以用雙引號將它夾起來表示,如下:
"successful auth"
送出搜尋後,即可取回帶有空格字串的搜尋結果。
帶有空格的字串搜尋
若已知要搜尋的字串存在於那一個欄位,可以指定欄位名稱與字串進行搜尋,如下:
facility:"system daemon"
此時的結果,只會顯示在 facility
欄位中比對符合 system daemon
的記錄。
指定欄位的的字串搜尋
另外一種常見的場景,要找出具有某個蘭位的記錄沒有的則不顯示,在 Graylog 中也提供了專用的語法,這個技巧非常實用。
_exists_: TargetUserName
利用 _exists_:
搭配 TargetUserName
欄位名稱,即可找出只具有這個欄位的記錄,如下圖:
指定欄位存在搜尋結果
技巧:
若要改為找出
不具某個欄位的記錄
,在_exists_:
前方加上NOT
即可。
除了搜尋指定字串存在的記錄之外,若要反過來做出 排除具有特定字串的記錄
,可以加上 NOT
邏輯運算子。
NOT "successful auth"
此時的結果,僅列出不含 successful auth
以外的所有記錄。
以 NOT 邏輯運算子搜尋結果
若今天需要搜尋的條件不只一個,可以利用邏輯運算子將多個條件結合使用,以取得更接近需求目標的結果。
facility:"system daemon" AND level:6
我們想要同時找出符合 factility
欄位內容為 system daemon
以及 level
欄位內容為 6
的記錄時,可以先這兩個條件填入,再用 AND
將兩個條件連接起來,即可生效:
以 AND 邏輯運算子搜尋結果
若要搜尋的多個條件是任一個符合均要列出時,可以採用 OR
做為邏輯運算子。
level:6 OR level:3
搜尋後,可以看到結果中僅有 level
欄位內容為 6 或 3 的記錄。
以 OR 邏輯運算子搜尋結果
隨著要搜尋的內容越趨複雜,串接的條件不僅多個還可能需要依據內容先比較過後再與其它條件比較時,可以利用括號處理。
facility:"system daemon" AND (level:6 OR level:3)
經過搭配使用,即可做出 先判斷 level 欄位內容為 6 或 3
的記錄,再搭配比較找出 facility
欄位內容也必須是 system daemon
的記錄。
以 AND、OR 與括號合併使用搜尋
注意:
邏輯運算子 AND 或 OR 必須全大寫,否則會被視為搜尋字串的一部份。
對於欄位內容是數值類型者,可以使用比較運算子取得結果,例如 <
、>
、<=
、>=
這四種。
EventID:<5000
這段語法執行後,會取得 Windows 事件中 EventID 小於 5000
的記錄。
採用小於比較運算子搜尋結果
若需要取得某一個特定區間的結果,可以將大於及小於搭配使用。
EventID:>=4624 AND EventID:<=4625
使用此語法搭配後,即可找出 EventID 介於 4624~2625
的記錄結果。
採用大於及小於比較運算子搜尋結果
技巧:
EventID:>=4624 AND EventID:<=4625
寫法也可簡化為EventID:(>=4624 AND <=4625)
除了同時採用大於小於得出範圍之外,亦有另一種搜尋範圍的比較方式。
EventID:[4624 TO 4625]
採用此語法同樣可以得出指定範圍數值間的結果。
採用範圍搜尋結果
若搜尋的預期欄位內容含有部份特殊符號時,需要在原符號前加上反斜線 \
才能被視為字串,例如:
source:win11\-pro\-1
即是在 source
欄位中找出主機名稱為 win11-pro-1
的相關記錄。
搜尋字串加上反斜線的搜尋結果
需要加上反斜線的符號整理如下:
需要加上反斜線的特殊符號
如果是從欄位內容按下選單的 Add to query
自動加入搜尋列的語法,系統也會協助對該處理的符號加入反斜線。
技巧:
若經常遇到有特殊符耗不想疲於處理反斜線時,也可以直接把該字串全部用雙引號包起來,即可避免此困擾。例如
source:"win11-pro-1"
。